#include <stdio.h>
#include <string.h>
#include <stdlib.h>

//宏定义   完全替换
//#define 宏名 字符串
#define T (num*2+1)
#define M num*2+1

#define UINT unsigned int

#define M1(y) y*y+3*y

#define STR(s) #s

#define NUM1(a,b) a##e##b

#define NUM2(a,b) a##b##99

int main()
{
    int num=3;
    int val1=2*T+3*T;
    printf("%d\n",val1);

    int val2=2*M+3*M;
    printf("%d\n",val2);

    UINT un=1;
    printf("%d\n",un);


    int n=M1(6);
    printf("%d\n",n);
    n=M1(3+3);
    printf("%d\n",n);
    n=M1(2*3);
    printf("%d\n",n);

    printf("%s\n","abc567");
    printf("%s\n",STR("abc567"));   
    printf("%s\n",STR(abc567));

    printf("%f\n",NUM1(1.23,3));

    printf("%f\n",NUM2(1.23,3));
    //system("pause");
	return 0;
} 
